SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_CAJA_I05]    
/*-------------------------------------------------------*/          
/*---Empresa              : OFISIS S.A.                --*/          
/*---Cliente              : OFISIS                 --*/          
/*---Sistema              : Tesoreria                  --*/          
/*---M¸dulo               : Empresa                    --*/          
/*---Programa             : Transferencia desde Bancos --*/          
/*---                       a Caja en forma masiva     --*/          
/*---Script               : tcmovi_b.sql               --*/          
/*---Nombre SP            : SP_TCMOVI_CAJA_I05         --*/          
/*---Desarrollado por     : Javier Flores A.           --*/          
/*---Fecha Creaci¸n       : 24/06/1999                 --*/          
/*---Base Datos           : Microsoft Sql Server       --*/          
/*---Versi¸n              : 7.0                        --*/          
/*---Invoca a SP          :                            --*/          
/*-------------------------------------------------------*/          
          
/*-------------------------------------------------------*/          
/*---Modificado 1 por     :                            --*/          
/*---Fecha Modificaci¸n   :                            --*/           
/*---Detalle Modificaci¸n :                            --*/          
/*-------------------------------------------------------*/          
          
/*-------------------------------------------------------*/          
/*---Comentarios                                       --*/          
/*---                                                  --*/          
/*---                                                  --*/          
/*-------------------------------------------------------*/          
          
/*-------------------------------------------------------*/          
/*---Drop Proc SP_TCMOVI_CAJA_I05                      --*/          
/*---Grant all on SP_TCMOVI_CAJA_I05 to public         --*/           
/*---SP_TCMOVI_CAJA_I05                                --*/          
/*-------------------------------------------------------*/          
 @ISCO_EMPR   TD_VC_002,           
 @ISCO_USUA_MODI  TD_VC_008_USUA,          
 @ISCO_CAJA   TD_VC_008,           
 @ISAA_CAJA   TD_VC_004,           
 @ISMM_CAJA   TD_VC_002,           
 @ISTI_MOVI   TD_VC_001,            
 @ISNU_COMP_CAJA  TD_VC_008,           
 @INNU_SECU   TD_IN_001,          
 @IDFE_OPER   TD_DT_001,           
 @IDFE_DISP   TD_DT_001,          
 @ISCO_MONE   TD_VC_003,           
 @ISCO_TIPO_DOCU  TD_VC_003,          
 @ISNU_DOCU_BANC  TD_VC_020,          
 @INIM_MOVI   TD_NU_016_004,           
 @INIM_CONV   TD_NU_016_004,          
 @ISCO_EMPR_DEST  TD_VC_002,          
 @ISCO_BANC_DEST  TD_VC_003,           
 @ISNU_CNTA_DEST  TD_VC_020,           
 @ISNU_COMP_DEST  TD_VC_008,          
 @ISCO_TIPO_DEST  TD_VC_003,           
 @INFA_TIPO_DEST  TD_NU_015_006,           
 @ISCO_GRUP_CONC  TD_VC_020,  
 @ISDE_OBSE   TD_VC_100,           
 @ISTI_CORR_INEG  TD_VC_001,          
 @INUL_CORR_INEG  TD_IN_001,           
 @INUL_CORR_INGR  TD_IN_001,          
 @ISCO_UNID_CNTB  TD_VC_003,          
 @ISTI_MOVI_OPER        TD_VC_001,           
 @ISCO_CNTA_EMPR        TD_VC_020,          
 @ISTI_ENTI  TD_VC_001,           
 @ISCO_ENTI  TD_VC_020,           
 @ISTI_DOCU  TD_VC_003,           
 @ISNU_DOCU  TD_VC_020,           
 @ISCO_ORDE_SERV TD_VC_020          
 As          
Declare @VNCO_NUEV_NUME TD_IN_001,  @VSCO_NUEV_CHAR TD_VC_008,          
         @VSAA_BNCO_DEST TD_VC_004,  @VSMM_BNCO_DEST TD_VC_002,            
         @VNNU_REGI      TD_IN_001,  @VNNU_SECU TD_IN_001, @VNIM_CONV TD_NU_016_004,          
         @VSCO_MONE      TD_VC_003, @VNIM_TOTA TD_NU_016_004, @VNIM_MOVI_ANTE  TD_NU_016_004          
          
 BEGIN TRAN SP_TCMOVI_BANC_I03          
          
  Select @VSAA_BNCO_DEST = Convert(Char(4),Datepart(YY, @IDFE_OPER))          
  Select @VSMM_BNCO_DEST = Convert(Char(2),Datepart(MM, @IDFE_OPER))          
          
  If Datalength (rtrim(@VSMM_BNCO_DEST)) = 1          
     Select @VSMM_BNCO_DEST = '0' + @VSMM_BNCO_DEST           
          
          
  If @INNU_SECU IS NULL          
     Begin          
       Select @VNNU_SECU = NU_SECU          
       From   TDMOVI_CATB    
       Where  CO_EMPR = @ISCO_EMPR          
       and    CO_CAJA = @ISCO_CAJA          
       and    AA_CAJA = @ISAA_CAJA          
       and    MM_CAJA = @ISMM_CAJA           
       and    TI_MOVI = @ISTI_MOVI          
       and    NU_COMP_CAJA = @ISNU_COMP_CAJA          
          
       If @VNNU_SECU > 0          
          Select @VNNU_SECU = @VNNU_SECU + 1          
       Else          
          Select @VNNU_SECU = 1                   
          
       If Rtrim(@ISCO_TIPO_DOCU) = ''          
   Select @ISCO_TIPO_DOCU = NULL            
          
          
    Select @VSCO_NUEV_CHAR  = ISNULL(MAX(NU_COMP_BANC), '0')          
    From TCMOVI_BANC           
    Where CO_EMPR = @ISCO_EMPR_DEST      
    And   CO_UNID_CONC =  @ISCO_UNID_CNTB    
    And   CO_BANC = @ISCO_BANC_DEST           
    And   NU_CNTA_BANC = @ISNU_CNTA_DEST           
    And    AA_BNCO = @VSAA_BNCO_DEST          
    And    MM_BNCO = @VSMM_BNCO_DEST           
    And   TI_MOVI_BANC = 'I'            
    And   NU_COMP_BANC LIKE '000%'          
          
          
          
          
       If @VSCO_NUEV_CHAR is not null           
          Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1          
       Else          
         Select @VNCO_NUEV_NUME = 1          
          
       Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)          
          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 1          
          Select @VSCO_NUEV_CHAR = '0000000'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 2          
     Select @VSCO_NUEV_CHAR = '000000'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 3          
     Select @VSCO_NUEV_CHAR = '00000'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 4          
     Select @VSCO_NUEV_CHAR = '0000'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 5          
     Select @VSCO_NUEV_CHAR = '000'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 6          
     Select @VSCO_NUEV_CHAR = '00'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
       IF Datalength(Ltrim(Rtrim(@VSCO_NUEV_CHAR))) = 7          
     Select @VSCO_NUEV_CHAR = '0'+LTRIM(RTRIM(@VSCO_NUEV_CHAR))          
          
       Select @ISNU_COMP_DEST = @VSCO_NUEV_CHAR          
       If RTRIM(ISNULL(@ISCO_BANC_DEST,'')) != ''          
       Begin          
       
    
        INSERT INTO TCMOVI_BANC (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,           
           FE_OPER, CO_TIPO_OPER, CO_TIPO_DOCU, NU_DOCU_BANC, FA_TIPO_CAMB, IM_MOVI, CO_GRUP_CONC, DE_OBSE, FE_DISP, ST_CONT,          
           TI_SITU, CO_UNID_CONC, CO_USUA_CREA, CO_USUA_MODI, FE_USUA_CREA, FE_USUA_MODI)          
          
           Values ( @ISCO_EMPR_DEST, @ISCO_BANC_DEST, @ISNU_CNTA_DEST, @VSAA_BNCO_DEST, @VSMM_BNCO_DEST, 'I',           
           @ISNU_COMP_DEST, @IDFE_OPER, @ISCO_TIPO_DEST, @ISCO_TIPO_DOCU, @ISNU_DOCU_BANC, @INFA_TIPO_DEST,           
           @INIM_CONV, @ISCO_GRUP_CONC, @ISDE_OBSE, @IDFE_DISP,  'N',  'ACT', @ISCO_UNID_CNTB, @ISCO_USUA_MODI, @ISCO_USUA_MODI, GETDATE(), GETDATE())          
    
    
           If @@error <> 0          
              Begin          
              Rollback tran          
              Return          
           End            
       End          
          
       If RTRIM(ISNULL(@ISCO_BANC_DEST,'')) = ''          
          Select @ISNU_COMP_DEST = ''          
    
     INSERT INTO TDMOVI_CATB ( CO_EMPR, CO_CAJA, TI_MOVI, AA_CAJA, MM_CAJA, NU_COMP_CAJA, NU_SECU, CO_EMPR_DEST,          
       CO_BANC_DEST, NU_CNTA_DEST, AA_BNCO_DEST, MM_BNCO_DEST, TI_MOVI_DEST, NU_COMP_DEST, FE_OPER, CO_TIPO_OPER,           
       CO_TIPO_DOCU, NU_DOCU_BANC, CO_UNID_CONC, FA_TIPO_CAMB, IM_MOVI, FE_DISP, IM_CONV, CO_GRUP_CONC,DE_OBSE, CO_USUA_CREA, CO_USUA_MODI,FE_USUA_CREA, FE_USUA_MODI,          
       TI_MOVI_OPER, CO_CNTA_EMPR, TI_ENTI, CO_ENTI, TI_DOCU, NU_DOCU, CO_ORDE_SERV)          
          
       Values ( @ISCO_EMPR, @ISCO_CAJA, @ISTI_MOVI, @ISAA_CAJA, @ISMM_CAJA,          
     @ISNU_COMP_CAJA, @VNNU_SECU, @ISCO_EMPR_DEST, @ISCO_BANC_DEST, @ISNU_CNTA_DEST, @VSAA_BNCO_DEST,           
       @VSMM_BNCO_DEST, 'I', @ISNU_COMP_DEST, @IDFE_OPER, @ISCO_TIPO_DEST, @ISCO_TIPO_DOCU, @ISNU_DOCU_BANC,           
       @ISCO_UNID_CNTB, @INFA_TIPO_DEST, @INIM_MOVI, @IDFE_DISP, @INIM_CONV,@ISCO_GRUP_CONC, @ISDE_OBSE, @ISCO_USUA_MODI, @ISCO_USUA_MODI, GETDATE(), GETDATE(),         
       @ISTI_MOVI_OPER, @ISCO_CNTA_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU, @ISNU_DOCU, @ISCO_ORDE_SERV)          
     
    
    
       If @@error <> 0          
          Begin          
            Rollback Tran          
     Return          
          End          
          
      End          
    Else          
         Begin          
             Select @VNIM_CONV = Isnull(IM_CONV,0)          
             From   TDMOVI_CATB          
             Where  CO_EMPR = @ISCO_EMPR          
             And      CO_CAJA = @ISCO_CAJA          
             And      AA_CAJA = @ISAA_CAJA          
             And      MM_CAJA = @ISMM_CAJA          
             And      TI_MOVI = @ISTI_MOVI          
             And      NU_COMP_CAJA = @ISNU_COMP_CAJA          
             And      NU_SECU =  @INNU_SECU          
          
    
       Update TDMOVI_CATB          
             Set FA_TIPO_CAMB =  @INFA_TIPO_DEST,          
                 CO_TIPO_DOCU = @ISCO_TIPO_DOCU,          
                 NU_DOCU_BANC = @ISNU_DOCU_BANC,          
        TI_ENTI = @ISTI_ENTI,          
     CO_ENTI = @ISCO_ENTI,          
     TI_DOCU = @ISTI_DOCU,          
     NU_DOCU = @ISNU_DOCU,          
     CO_ORDE_SERV = @ISCO_ORDE_SERV,          
                 CO_UNID_CONC = @ISCO_UNID_CNTB,          
                 FE_DISP  = @IDFE_DISP,          
                 CO_TIPO_OPER = @ISCO_TIPO_DEST,   
     CO_GRUP_CONC = @ISCO_GRUP_CONC,           
                 DE_OBSE = @ISDE_OBSE,          
                 IM_MOVI =  @INIM_MOVI,          
                 IM_CONV = @INIM_CONV,          
             CO_USUA_MODI = @ISCO_USUA_MODI,          
                 FE_USUA_MODI = GETDATE()          
             Where  CO_EMPR = @ISCO_EMPR          
             And      CO_CAJA = @ISCO_CAJA          
             And      AA_CAJA = @ISAA_CAJA          
             And      MM_CAJA = @ISMM_CAJA          
             And      TI_MOVI = @ISTI_MOVI          
             And      NU_COMP_CAJA = @ISNU_COMP_CAJA          
             And      NU_SECU =  @INNU_SECU       
          
             If @@error <> 0          
                Begin          
                   Rollback tran          
       Return          
                End          
     
             Update TCMOVI_BANC          
             Set        FA_TIPO_CAMB =  @INFA_TIPO_DEST,          
                          CO_TIPO_DOCU = @ISCO_TIPO_DOCU,          
                          NU_DOCU_BANC = @ISNU_DOCU_BANC,          
                          FE_DISP  = @IDFE_DISP,          
                          CO_TIPO_OPER = @ISCO_TIPO_DEST,  
        CO_GRUP_CONC = @ISCO_GRUP_CONC,            
                          DE_OBSE = @ISDE_OBSE,          
                          IM_MOVI = @INIM_CONV,          
                          CO_USUA_MODI = @ISCO_USUA_MODI,          
                          FE_USUA_MODI = GETDATE()          
             Where  CO_EMPR = @ISCO_EMPR_DEST           
             And    CO_UNID_CONC =  @ISCO_UNID_CNTB    
             And    CO_BANC = @ISCO_BANC_DEST          
             And    NU_CNTA_BANC = @ISNU_CNTA_DEST          
             And    AA_BNCO = @VSAA_BNCO_DEST          
           And    MM_BNCO = @VSMM_BNCO_DEST          
             And    TI_MOVI_BANC = 'I'          
             And    NU_COMP_BANC = @ISNU_COMP_DEST        
    
          
          
             If @@error <> 0          
                Begin          
                   Rollback tran          
       Return          
                End          
          
          
        End           
          
        Select @VNIM_MOVI_ANTE  = Isnull(IM_MOVI,0)           
        FROM   TCMOVI_CAJA          
        WHERE  CO_EMPR = @ISCO_EMPR           
        and    CO_CAJA = @ISCO_CAJA          
        and    AA_CAJA = @ISAA_CAJA          
        and    MM_CAJA = @ISMM_CAJA          
        and    TI_MOVI = @ISTI_MOVI          
        and    NU_COMP_CAJA = @ISNU_COMP_CAJA          
          
    Select @VNIM_TOTA = Isnull(Sum(Isnull(IM_MOVI,0)),0)          
        From TDMOVI_CATB          
        Where CO_EMPR = @ISCO_EMPR          
        And   CO_CAJA = @ISCO_CAJA          
        And   AA_CAJA = @ISAA_CAJA          
        And   MM_CAJA = @ISMM_CAJA          
        And   TI_MOVI = @ISTI_MOVI          
        And   NU_COMP_CAJA = @ISNU_COMP_CAJA          
                      
    
      Update TCMOVI_CAJA          
       Set IM_MOVI = Round(@VNIM_TOTA,2),          
             CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()                   
       Where CO_EMPR = @ISCO_EMPR           
       And   CO_CAJA = @ISCO_CAJA          
       And   AA_CAJA = @ISAA_CAJA          
       And   MM_CAJA = @ISMM_CAJA          
       And   TI_MOVI = @ISTI_MOVI          
       And   NU_COMP_CAJA = @ISNU_COMP_CAJA      
    
          
       If @@error <> 0          
          Begin          
             Rollback tran          
 Return          
          End            
          
          
 COMMIT TRAN          
          
/* -------------------------- Fin -----------------------------------*/    
GO
